/*
 * Generated Wed Jun 05 23:50:47 PDT 2013
 */


	.section	".bss"

.init:
	.skip	4
	.global	x

x:
	.skip	12

!--------Default String Formatters---------

	.section	".rodata"
	.align	4

.intfmt:
	.asciz	"%d"

.strfmt:
	.asciz	"%s"

.endl:
	.asciz	"\n"

.bool_true:
	.asciz	"true"

.bool_false:
	.asciz	"false"
	.align	4

.float_one:
	.single	0r1.0

.str0:
	.asciz	" "

	.section	".text"


!--------main---------
	.align	4
	.global	main

main:
	set		SAVE.main, %g1
	save	%sp, %g1, %sp

!--------Global Initialization Guard---------
	set		.init, %l0
	ld		[%l0], %l1
	cmp		%l1, %g0
	bne		.init_done
	nop

	mov		1, %l1
	st		%l1, [%l0]

!--------Declaring variable: x---------

.init_done:

!--------Declaring variable: a---------

!--------Initializations: a = 0---------
	set		0, %l0
	set		-4, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Declaring variable: b---------

!--------Initializations: b = 1---------
	set		1, %l0
	set		-8, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Declaring variable: c---------

!--------Initializations: c = 2---------
	set		2, %l0
	set		-12, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Declaring variable: d---------

!--------Initializations: d = 20---------
	set		20, %l0
	set		-16, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of a---------
	set		-4, %l0
	add		%fp, %l0, %l0
	set		-20, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Declaring variable: f---------

!--------Initializations: f = &a---------
	set		-20, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-24, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		0, %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-28, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Do Assignment: x[0] = f---------
	set		-28, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-24, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %l1
	st		%l1, [%l0]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		1, %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-36, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of b---------
	set		-8, %l0
	add		%fp, %l0, %l0
	set		-40, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Do Assignment: x[1] = &b---------
	set		-36, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-40, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %l1
	st		%l1, [%l0]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		2, %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-48, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of c---------
	set		-12, %l0
	add		%fp, %l0, %l0
	set		-52, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Do Assignment: x[2] = &c---------
	set		-48, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-52, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %l1
	st		%l1, [%l0]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		0, %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-60, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Declaring variable: y---------

!--------Initializations: y = x[0]---------
	set		-60, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		-64, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Declaring variable: z---------

!-------- Address of a---------
	set		-4, %l0
	add		%fp, %l0, %l0
	set		-72, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Do Assignment: z = &a---------
	set		-68, %l0
	add		%fp, %l0, %l0
	set		-72, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %l1
	st		%l1, [%l0]

!--------Dereferencing: z---------
	set		-68, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-80, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Printing Non-Constant: int---------
	set		.intfmt, %o0
	set		-80, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %o1
	call	printf
	nop


!--------Printing Constant: NL---------
	set		.strfmt, %o0
	set		.endl, %o1
	call	printf
	nop


!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		0, %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-84, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of x[0]---------
	set		-84, %l0
	add		%fp, %l0, %l0

!--------x[0] is a ref ---------
	ld		[%l0], %l0
	set		-88, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: &x[0]---------
	set		-88, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-92, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: *&x[0]---------
	set		-92, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		-96, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Printing Non-Constant: int---------
	set		.intfmt, %o0
	set		-96, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %o1
	call	printf
	nop


!--------Printing Constant:  ---------
	set		.strfmt, %o0
	set		.str0, %o1
	call	printf
	nop


!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		0, %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-100, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: x[0]---------
	set		-100, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		-104, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Printing Non-Constant: int---------
	set		.intfmt, %o0
	set		-104, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %o1
	call	printf
	nop


!--------Printing Constant: NL---------
	set		.strfmt, %o0
	set		.endl, %o1
	call	printf
	nop


!-------- Address of y---------
	set		-64, %l0
	add		%fp, %l0, %l0
	set		-108, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: &y---------
	set		-108, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-112, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: *&y---------
	set		-112, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		-116, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Local **&y+1---------
	set		-116, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		1, %l1
	add		%l0, %l1, %l0
	set		-120, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		-120, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-124, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: x[**&y+1]---------
	set		-124, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		-128, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Local *x[**&y+1]+1---------
	set		-128, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		1, %l1
	add		%l0, %l1, %l0
	set		-132, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		-132, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-136, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of d---------
	set		-16, %l0
	add		%fp, %l0, %l0
	set		-140, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Do Assignment: x[*x[**&y+1]+1] = &d---------
	set		-136, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-140, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %l1
	st		%l1, [%l0]

!--------Dereferencing: y---------
	set		-64, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-148, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of *y---------
	set		-148, %l0
	add		%fp, %l0, %l0

!--------*y is a ref ---------
	ld		[%l0], %l0
	set		-152, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: &*y---------
	set		-152, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-156, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!-------- Address of *&*y---------
	set		-156, %l0
	add		%fp, %l0, %l0

!--------*&*y is a ref ---------
	ld		[%l0], %l0
	set		-160, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: &*&*y---------
	set		-160, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	set		-164, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Local *&*&*y+2---------
	set		-164, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		2, %l1
	add		%l0, %l1, %l0
	set		-168, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Indexing array: x---------
	set		x, %l0
	add		%g0, %l0, %l0
	set		-168, %l1
	add		%fp, %l1, %l1
	ld		[%l1], %o0
	set		4, %o1
	call	.mul
	nop

	add		%l0, %o0, %l0
	set		-172, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Dereferencing: x[*&*&*y+2]---------
	set		-172, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %l0
	set		-176, %l1
	add		%fp, %l1, %l1
	st		%l0, [%l1]

!--------Printing Non-Constant: int---------
	set		.intfmt, %o0
	set		-176, %l0
	add		%fp, %l0, %l0
	ld		[%l0], %l0
	ld		[%l0], %o1
	call	printf
	nop


!--------Printing Constant: NL---------
	set		.strfmt, %o0
	set		.endl, %o1
	call	printf
	nop

	ret
	restore

SAVE.main=-(92 + 176) & -8

